package com.usian.store.service.impl;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.usian.common.pojo.Dept;
import com.usian.common.pojo.UserStore;
import com.usian.common.vo.ResultVo;
import com.usian.common.vo.WmsVo;
import com.usian.store.fegin.DeptFegin;
import com.usian.store.mapper.UserStoreMapper;
import com.usian.store.service.UserStoreService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @TODO:
 * @Author:baimu
 * @Date:2024 07 02 08 59
 **/
@Service
public class UserStoreServiceImpl implements UserStoreService {

        @Autowired
    UserStoreMapper userStoreMapper;
    @Override
    public ResultVo selectByUsername(UserStore userStore) {
        UserStore userStoreDb = userStoreMapper.selectByUsername(userStore.getUsername());
        if(null==userStoreDb){
            return ResultVo.error("用户名不存在");
        }else {
            if (userStore.getPassword().equals(userStoreDb.getPassword())){
                return ResultVo.ok("登录成功");
            }else {
                return ResultVo.error("密码错误");
            }
        }


    }

    @Override
    public ResultVo saveUserStore(UserStore userStore) {
        int i = userStoreMapper.saveUserStore(userStore);
        if(i>0){
            return ResultVo.ok();
        }else {
            return ResultVo.error();
        }

    }

    @Override
    public ResultVo updateUserStore(UserStore userStore) {
        UserStore userStore1 = userStoreMapper.selectByTelPhone(userStore);
        if(null!=userStore1){
            return ResultVo.error("手机号重复了");
        }


        int i = userStoreMapper.updateUserStoreByName(userStore);
        if(i>0){
            return ResultVo.ok();
        }else{
            return ResultVo.error();
        }

    }

    @Autowired
    DeptFegin deptFegin;

    @Override
    public PageInfo findAll(WmsVo wms) {

        //必须放到前面
        PageHelper.startPage(wms.getPageNumber(), wms.getPageSize());

        List<Dept> all = deptFegin.findAll();
        Map<Integer,String> map = new HashMap<Integer,String>();

        for (int i = 0; i < all.size(); i++) {
            Integer id = all.get(i).getId();
            String deptName = all.get(i).getDeptName();
            map.put(id, deptName);
        }
        List<UserStore> userStores = userStoreMapper.findAll(wms);
        for (int i = 0; i < userStores.size(); i++) {
            Integer deptId = userStores.get(i).getDeptId();
            String  deptName = map.get(deptId);
            userStores.get(i).setDeptName(deptName);
        }

        PageInfo<UserStore> userStorePageInfo = new PageInfo<>(userStores);

        return userStorePageInfo;
    }

    @Override
    public ResultVo updateUserStoreById(UserStore userStore) {
        int i = userStoreMapper.updatePhoneNumberById(userStore);
        if(i>0){
            return ResultVo.ok();
        }else{
            return ResultVo.error();
        }

    }

    @Override
    public ResultVo deleteUserStoreById(Integer id) {
        int i = userStoreMapper.deleteUserStoreById(id);


        if(i>0){
            return ResultVo.ok();
        }else{
            return ResultVo.error();
        }
    }
}
